package com.fzg.controller;

import com.fzg.common.enums.ResponseWrapper;
import com.fzg.common.model.login.param.*;
import com.fzg.service.LoginService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;

/**
 * create by fzg
 * 2021/12/13 15:28
 */

@RestController
@RequestMapping("/login")
public class LoginController {

    @Autowired
    private LoginService loginService;

    /**
     * 后台登陆，输入账号和密码，选择角色，点击登录。
     */
    @PostMapping("/backLogin")
    public ResponseWrapper backLogin(@Validated @RequestBody BackLoginParam param){
        return loginService.backLogin(param);
    }

    /**
     * 通过账号查询用户或公司名称
     */
    @GetMapping("/getLoginInfo")
    private ResponseWrapper getLoginInfo(String account){
        return loginService.getLoginInfo(account);
    }

    /**
     * 前台登陆获取验证码
     */
    @GetMapping("/getImageCode")
    public ResponseWrapper getReceptionLoginImageCode(){
        return loginService.getReceptionLoginImageCode();
    }

    /**
     * 前台登陆
     */
    @PostMapping("/receptionLogin")
    public ResponseWrapper receptionLogin(@Validated @RequestBody ReceptionLoginParam param){
        return loginService.receptionLogin(param);
    }

    /**
     * 前台注册
     */
    @PostMapping("/receptionRegister")
    public ResponseWrapper receptionRegister(@Validated @RequestBody ReceptionRegisterParam param){
        return loginService.receptionRegister(param);
    }

    /**
     * 获取当前登陆人或企业的名称
     */
    @GetMapping("/getLoginName")
    public ResponseWrapper getCurrentLoginName(@Validated GetCurrentLoginNameParam param){
        return loginService.getCurrentLoginName(param);
    }

    /**
     * 通过登陆的账号获取当前角色名称
     */
    @GetMapping("/getCurrentLoginRoleName")
    public ResponseWrapper getCurrentLoginRoleName(@Validated GetCurrentLoginRoleNameParam param){
        return loginService.getCurrentLoginRoleName(param);
    }

    /**
     * 查询注册输入的账号是否相同
     */
    @GetMapping("/checkAccountApi")
    public ResponseWrapper checkAccountApi(@Validated CheckAccountApiParam param){
        return loginService.checkAccountApi(param);
    }


    /**
     * 注册时检查手机号是否存在
     */
    @GetMapping("/checkPhoneIsExist")
    public ResponseWrapper checkPhoneIsExist(ChenkPhoneIsExist param){
        return loginService.checkPhoneIsExist(param);
    }

}
